package com.azt.api.service;

import java.util.List;
import java.util.Map;

import com.azt.api.pojo.ProRepository;
import com.azt.model.page.Pagination;

/**
 *系统仓库相关
 *
 */
public interface ProRepositoryService {
	
	
	Pagination getRepositoryByPage(int pageno,int pagesize,Map<String, String> searchMap);
	/**根据ID获取实体
	 * @param id
	 * @return
	 */
	ProRepository getEntityById(Integer id);
	
	/**
	 * 保存或更新
	 * @param pr
	 */
	void saveOrUpdateEntity(ProRepository pr);
	
	
	/**
	 * 删除实体
	 * @param pr
	 */
	void deleteEntity(ProRepository pr);
	
	/**
	 * 判断 仓库里的  title  是否存在        secret是否存在
	 * ture  不存在  可以添加
	 * false 存在  不能添加
	 * @param md5
	 * @param categoryId 类目id
	 * @return
	 */
	boolean ifTitleExist(String md5 , Integer categoryId);
	
	
	/**
	 * 根据类目id来删除仓库
	 * @param categoryId
	 */
	void deleteByCategoryId(Integer categoryId);
	

	/**
	 * 查找仓库对应的类目,可以有多个^^ 用,号分割
	 * 根据md5值查
	 * 
	 * @param md5_32
	 * @return
	 * @author 张栋  2016年5月24日上午10:59:23
	 */
	String getPcatidBymd5(String md5_32);
	
	/**查找仓库对应的类目
	 * 根据标题查,多个结果以,号分割
	 * @param title
	 * @return
	 * @author 张栋  2016年5月24日上午11:00:28
	 */
	String getPcatidByTitle(String title);
	
	/**
	 * 保存或者更新到仓库
	 * @param repository
	 * @return
	 * @author 张栋  2016年5月24日上午11:00:16
	 */
	ProRepository  saveOrupdateRepository(ProRepository repository);
	
	/**
	 * 仓库里可以有重复的
	 * @param md5_32
	 * @return
	 * @author 张栋  2016年5月24日上午11:19:41
	 */
	List<ProRepository>  getRepositoryBymd5(String md5_32);

	
	void deleteMore(String[] ids);
	
	/**
	 * 根据secret 与  类目id 进行删除
	 * @author 张栋  2016年7月21日上午11:15:55
	 */
	void deleteByCategoryIdAndSecret(String secret, Integer categoryid);
	
	/**
	 * 根据md5与类目id进行查找
	 * @return
	 * @author 张栋  2016年7月21日下午12:35:57
	 */

	ProRepository getRepositoryBymd5AndPcat(String md5secret, int pid);
	/**
	 * 根据md5与类目id进行查找
	 * @return
	 * @author 张栋  2016年7月21日下午12:35:57
	 */
	List<ProRepository> getRepositoryByPidAndSecret(String md5secret, int parseInt);


	
}
